home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / New System Software Extensions / OpenDoc A6 / SOM / OpenDoc and SOM / CPlusPlus / ODSessn.xh < prev    next >
Encoding:
Text File  |  1994-04-19  |  9.0 KB  |  375 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: Locrian:WWDCSun:CPlusPlus:ODSessn.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: somc/smemit.c
  7.  *     SOM Emitter emitxh.dll: somc/smmain.c
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *  Theory of Operation
  13.  * 
  14.  * 
  15.  *  Constants
  16.  * 
  17.  *  Change these names later…
  18.  * 
  19.  *  Classes defined in this interface
  20.  * 
  21.  */
  22.  
  23.  
  24. #ifndef SOM_ODSession_xh
  25. #define SOM_ODSession_xh
  26.  
  27. class ODSession;
  28.  
  29. #define ODSession_MajorVersion 0
  30. #define ODSession_MinorVersion 0
  31.  
  32. /* C++ som defs */
  33. #include <somcls.xh>
  34.  
  35. /* Include C++ parent defs */
  36. #ifndef SOM_ODBaseSession_xh
  37. #include <BaseSess.xh>
  38. #endif
  39.  
  40. #ifndef ODSession_API
  41. #define ODSession_API
  42. /*
  43.  * -- The Class API
  44.  */
  45.  
  46. /*
  47.  * Start of user-defined types:
  48.  */
  49. class ODExtension;
  50. class ODSemanticInterface;
  51. class ODStorageSystem;
  52. class ODSystemSession;
  53. class ODDispatcher;
  54. class ODArbitrator;
  55. class ODDragAndDrop;
  56. class ODLinkManager;
  57. class ODTranslation;
  58. class ODWindowState;
  59. class ODUndo;
  60. class ODNameSpaceManager;
  61. class ODMessageInterface;
  62. class ODNameResolver;
  63. class ODPersistentObject;
  64. class ODClipboard;
  65.  
  66. /*
  67.  * End of user-defined types.
  68.  */
  69.  
  70. #if applec ^ PRAGMA_LIB_EXPORT
  71. #pragma lib_export on
  72. #endif
  73.  
  74.  
  75. /* A procedure to create the ODSession Class */
  76. SOMEXTERN SOMClass * SOMLINK ODSessionNewClass(
  77.         integer4 majorVersion,
  78.         integer4 minorVersion);
  79.  
  80. /* The API to the ODSession class object, and the methods it introduces. */
  81. typedef struct ODSessionClassDataStructure {
  82.     SOMClass *classObject;
  83.     somMToken GetWindowState;
  84.     somMToken GetDispatcher;
  85.     somMToken GetArbitrator;
  86.     somMToken GetClipboard;
  87.     somMToken GetDragAndDrop;
  88.     somMToken GetLinkManager;
  89.     somMToken GetMessageInterface;
  90.     somMToken GetNameResolver;
  91.     somMToken GetTranslation;
  92.     somMToken GetUndo;
  93.     somMToken GetUserName;
  94.     somMToken GetSemanticInterface;
  95.     somMToken GetShellSemtInterface;
  96.     somMToken Tokenize;
  97.     somMToken RemoveEntry;
  98.     somMToken GetType;
  99.     somMToken RegisterObject;
  100.     somMToken UnregisterObject;
  101.     somMToken Exists;
  102.     somMToken UniqueChangeID;
  103. } ODSessionClassDataStructure;
  104. #ifdef SOM_NO_DATA_EXPORTS
  105.    SOMEXTERN ODSessionClassDataStructure * ODSessionGetClassData ( void );
  106. #   undef ODSessionClassData
  107. #   define ODSessionClassData (*ODSessionGetClassData())
  108. #else
  109.    SOMEXTERN ODSessionClassDataStructure ODSessionClassData;
  110. #endif /* SOM_NO_DATA_EXPORTS */
  111.  
  112. #if applec ^ PRAGMA_LIB_EXPORT
  113. #pragma lib_export off
  114. #endif
  115.  
  116. #define _ODSession ODSessionClassData.classObject
  117.  
  118. /* The API to parentMtabs for ODSession, and the instance data it introduces. */
  119. SOMEXTERN struct ODSessionCClassDataStructure {
  120.     somMethodTabs parentMtab;
  121.     somDToken instanceDataToken;
  122. } ODSessionCClassData;
  123.  
  124. /*
  125.  * -- Typedefs for Procedures that support Methods introduced by ODSession
  126.  */
  127. SOMEXTERN {
  128. typedef ODWindowState*   (* SOMLINK somTD_ODSession_GetWindowState)(ODSession *somSelf, Environment *ev);
  129. typedef ODDispatcher*   (* SOMLINK somTD_ODSession_GetDispatcher)(ODSession *somSelf, Environment *ev);
  130. typedef ODArbitrator*   (* SOMLINK somTD_ODSession_GetArbitrator)(ODSession *somSelf, Environment *ev);
  131. typedef ODClipboard*   (* SOMLINK somTD_ODSession_GetClipboard)(ODSession *somSelf, Environment *ev);
  132. typedef ODDragAndDrop*   (* SOMLINK somTD_ODSession_GetDragAndDrop)(ODSession *somSelf, Environment *ev);
  133. typedef ODLinkManager*   (* SOMLINK somTD_ODSession_GetLinkManager)(ODSession *somSelf, Environment *ev);
  134. typedef ODMessageInterface*   (* SOMLINK somTD_ODSession_GetMessageInterface)(ODSession *somSelf, Environment *ev);
  135. typedef ODNameResolver*   (* SOMLINK somTD_ODSession_GetNameResolver)(ODSession *somSelf, Environment *ev);
  136. typedef ODTranslation*   (* SOMLINK somTD_ODSession_GetTranslation)(ODSession *somSelf, Environment *ev);
  137. typedef ODUndo*   (* SOMLINK somTD_ODSession_GetUndo)(ODSession *somSelf, Environment *ev);
  138. typedef ODIText   (* SOMLINK somTD_ODSession_GetUserName)(ODSession *somSelf, Environment *ev);
  139. typedef ODSemanticInterface*   (* SOMLINK somTD_ODSession_GetSemanticInterface)(ODSession *somSelf, Environment *ev);
  140. typedef ODSemanticInterface*   (* SOMLINK somTD_ODSession_GetShellSemtInterface)(ODSession *somSelf, Environment *ev);
  141. typedef ODTypeToken   (* SOMLINK somTD_ODSession_Tokenize)(ODSession *somSelf, Environment *ev,
  142.         ODType* type);
  143. typedef void   (* SOMLINK somTD_ODSession_RemoveEntry)(ODSession *somSelf, Environment *ev,
  144.         ODType* type);
  145. typedef ODBoolean   (* SOMLINK somTD_ODSession_GetType)(ODSession *somSelf, Environment *ev,
  146.         ODTypeToken token,
  147.         ODType* type);
  148. typedef void   (* SOMLINK somTD_ODSession_RegisterObject)(ODSession *somSelf, Environment *ev,
  149.         ODPersistentObject* object,
  150.         ODISOStr collection,
  151.         ODSLong refCon);
  152. typedef void   (* SOMLINK somTD_ODSession_UnregisterObject)(ODSession *somSelf, Environment *ev,
  153.         ODPersistentObject* object,
  154.         ODISOStr collection,
  155.         ODSLong refCon);
  156. typedef ODBoolean   (* SOMLINK somTD_ODSession_Exists)(ODSession *somSelf, Environment *ev,
  157.         ODPersistentObject* object,
  158.         ODISOStr collection,
  159.         ODSLong refCon);
  160. typedef ODChangeID   (* SOMLINK somTD_ODSession_UniqueChangeID)(ODSession *somSelf, Environment *ev);
  161. }
  162.  
  163. #endif /* ODSession_API */
  164.  
  165.  
  166. /*
  167.  * -- Method Tokens are Thunks
  168.  */
  169. #undef somresolve_
  170. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  171.  
  172. /*
  173.  * -- The C++ Wrapper Class for ODSession
  174.  */
  175. class ODSession : public ODBaseSession
  176. {
  177. public:
  178.  
  179. void *operator new(size_t size)
  180. {
  181.    SOM_IgnoreWarning(size);
  182.    if (!ODSessionClassData.classObject) 
  183.       ODSessionNewClass(ODSession_MajorVersion,ODSession_MinorVersion);
  184.    return (void *)
  185.       ((somTD_SOMClass_somNew)
  186.       somresolve_((SOMObject *)((void*)(ODSessionClassData.classObject)),
  187.                  SOMClassClassData.somNew))
  188.          ((SOMClass *)((void*)(ODSessionClassData.classObject)));
  189. }
  190.  
  191. void operator delete(void * obj)
  192. {
  193.    ((SOMObject *)obj)->somFree();
  194. }
  195.  
  196. /* public method: GetWindowState */
  197. ODWindowState*   GetWindowState(Environment *ev)
  198. {
  199.    return SOM_Resolve(this,ODSession,GetWindowState)
  200.     (this,ev);
  201. }
  202.  
  203.  
  204. /* public method: GetDispatcher */
  205. ODDispatcher*   GetDispatcher(Environment *ev)
  206. {
  207.    return SOM_Resolve(this,ODSession,GetDispatcher)
  208.     (this,ev);
  209. }
  210.  
  211.  
  212. /* public method: GetArbitrator */
  213. ODArbitrator*   GetArbitrator(Environment *ev)
  214. {
  215.    return SOM_Resolve(this,ODSession,GetArbitrator)
  216.     (this,ev);
  217. }
  218.  
  219.  
  220. /* public method: GetClipboard */
  221. ODClipboard*   GetClipboard(Environment *ev)
  222. {
  223.    return SOM_Resolve(this,ODSession,GetClipboard)
  224.     (this,ev);
  225. }
  226.  
  227.  
  228. /* public method: GetDragAndDrop */
  229. ODDragAndDrop*   GetDragAndDrop(Environment *ev)
  230. {
  231.    return SOM_Resolve(this,ODSession,GetDragAndDrop)
  232.     (this,ev);
  233. }
  234.  
  235.  
  236. /* public method: GetLinkManager */
  237. ODLinkManager*   GetLinkManager(Environment *ev)
  238. {
  239.    return SOM_Resolve(this,ODSession,GetLinkManager)
  240.     (this,ev);
  241. }
  242.  
  243.  
  244. /* public method: GetMessageInterface */
  245. ODMessageInterface*   GetMessageInterface(Environment *ev)
  246. {
  247.    return SOM_Resolve(this,ODSession,GetMessageInterface)
  248.     (this,ev);
  249. }
  250.  
  251.  
  252. /* public method: GetNameResolver */
  253. ODNameResolver*   GetNameResolver(Environment *ev)
  254. {
  255.    return SOM_Resolve(this,ODSession,GetNameResolver)
  256.     (this,ev);
  257. }
  258.  
  259.  
  260. /* public method: GetTranslation */
  261. ODTranslation*   GetTranslation(Environment *ev)
  262. {
  263.    return SOM_Resolve(this,ODSession,GetTranslation)
  264.     (this,ev);
  265. }
  266.  
  267.  
  268. /* public method: GetUndo */
  269. ODUndo*   GetUndo(Environment *ev)
  270. {
  271.    return SOM_Resolve(this,ODSession,GetUndo)
  272.     (this,ev);
  273. }
  274.  
  275.  
  276. /* public method: GetUserName */
  277. ODIText   GetUserName(Environment *ev)
  278. {
  279.    return SOM_Resolve(this,ODSession,GetUserName)
  280.     (this,ev);
  281. }
  282.  
  283.  
  284. /* public method: GetSemanticInterface */
  285. ODSemanticInterface*   GetSemanticInterface(Environment *ev)
  286. {
  287.    return SOM_Resolve(this,ODSession,GetSemanticInterface)
  288.     (this,ev);
  289. }
  290.  
  291.  
  292. /* public method: GetShellSemtInterface */
  293. ODSemanticInterface*   GetShellSemtInterface(Environment *ev)
  294. {
  295.    return SOM_Resolve(this,ODSession,GetShellSemtInterface)
  296.     (this,ev);
  297. }
  298.  
  299.  
  300. /* public method: Tokenize */
  301. ODTypeToken   Tokenize(Environment *ev,
  302.         ODType* type)
  303. {
  304.    return SOM_Resolve(this,ODSession,Tokenize)
  305.     (this,ev,type);
  306. }
  307.  
  308.  
  309. /* public method: RemoveEntry */
  310. void   RemoveEntry(Environment *ev,
  311.         ODType* type)
  312. {
  313.    SOM_Resolve(this,ODSession,RemoveEntry)
  314.     (this,ev,type);
  315. }
  316.  
  317.  
  318. /* public method: GetType */
  319. ODBoolean   GetType(Environment *ev,
  320.         ODTypeToken token,
  321.         ODType* type)
  322. {
  323.    return SOM_Resolve(this,ODSession,GetType)
  324.     (this,ev,token,type);
  325. }
  326.  
  327.  
  328. /* public method: RegisterObject */
  329. void   RegisterObject(Environment *ev,
  330.         ODPersistentObject* object,
  331.         ODISOStr collection,
  332.         ODSLong refCon)
  333. {
  334.    SOM_Resolve(this,ODSession,RegisterObject)
  335.     (this,ev,object,collection,refCon);
  336. }
  337.  
  338.  
  339. /* public method: UnregisterObject */
  340. void   UnregisterObject(Environment *ev,
  341.         ODPersistentObject* object,
  342.         ODISOStr collection,
  343.         ODSLong refCon)
  344. {
  345.    SOM_Resolve(this,ODSession,UnregisterObject)
  346.     (this,ev,object,collection,refCon);
  347. }
  348.  
  349.  
  350. /* public method: Exists */
  351. ODBoolean   Exists(Environment *ev,
  352.         ODPersistentObject* object,
  353.         ODISOStr collection,
  354.         ODSLong refCon)
  355. {
  356.    return SOM_Resolve(this,ODSession,Exists)
  357.     (this,ev,object,collection,refCon);
  358. }
  359.  
  360.  
  361. /* public method: UniqueChangeID */
  362. ODChangeID   UniqueChangeID(Environment *ev)
  363. {
  364.    return SOM_Resolve(this,ODSession,UniqueChangeID)
  365.     (this,ev);
  366. }
  367.  
  368.  
  369.  
  370. };   /* ODSession */
  371.  
  372.  
  373.  
  374. #endif       /* SOM_ODSession_xh */
  375.